export default (initialState: API.UserInfo) => {
  // 在这里按照初始化数据定义项目中的权限，统一管理
  // 参考文档 https://umijs.org/docs/max/access
  
  // 默认所有用户都有基本访问权限
  const canSeeAdmin = !!(initialState && initialState.name !== 'dontHaveAccess');
  
  // 根据路由配置中的access字段添加相应的权限控制函数
  // 实际项目中应根据路由配置中的用户角色或权限列表来校验
  const canAccessUser = !!(initialState && initialState.role && initialState.role.includes('admin'));
  const canAccessRole = !!(initialState && initialState.role && initialState.role.includes('admin'));
  const canAccessPermission = !!(initialState && initialState.role && initialState.role.includes('admin'));
  const canAccessMenu = !!(initialState && initialState.role && initialState.role.includes('admin'));
  const canAccessSystem = !!(initialState && initialState.role && initialState.role.includes('admin'));
  
  // 开发环境下同时设置所有权限为true，便于开发测试
  const isDev = process.env.NODE_ENV === 'development';
  
  return {
    canSeeAdmin,
    canAccessUser: isDev || canAccessUser,
    canAccessRole: isDev || canAccessRole,
    canAccessPermission: isDev || canAccessPermission,
    canAccessMenu: isDev || canAccessMenu,
    canAccessSystem: isDev || canAccessSystem,
  };
};
